package com.grupoconstruobras.sigo.personas;

import com.grupoconstruobras.sigo.data.personas.Persona;
import com.grupoconstruobras.sigo.datatransfer.ResultSet;
import com.grupoconstruobras.sigo.ServiceException;
import com.grupoconstruobras.sigo.general.ICrudManager;
import com.grupoconstruobras.sigo.general.util.GenericJPAManager;

import java.util.ArrayList;

import javax.ejb.EJB;
import javax.ejb.Stateless;

@Stateless(name = "personaNaturalManager", mappedName = "manager/personaNaturalManager")
@EJB(beanName = "personaNaturalManager", beanInterface = ICrudManager.class, name = "ejb/service/personaNaturalManager")
public class PersonaNaturalManagerEjb extends
		GenericJPAManager<Persona, Integer> implements
		ICrudManager<Integer, Persona> {

	/**
	 * Esta clase no parece necesaria por que aún no se ha implementado la
	 * particularidad al momento de usar los métodos
	 */
	@Override
	public Persona save(Persona dto) throws ServiceException {
		dto = super.create(dto);
		return dto;
	}

	@Override
	public Persona merge(Integer id, Persona dto) throws ServiceException {
		dto.setId(id);
		dto = super.update(dto);
		return dto;
	}

	@Override
	public void remove(Integer id) throws ServiceException {
		super.deleteById(id);
	}

	@Override
	public Persona getById(Integer id) throws ServiceException {
		return super.selectById(id);
	}

	@Override
	public ResultSet<?> filter(Persona dto, Integer offset, Integer limit)
			throws ServiceException {
		return new ResultSet<Persona>(0, new ArrayList<Persona>());
	}
}